package demo01;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Demo02BufferedStreamCopy {
    public static void main(String[] args) {
        // 记录运行起始时间
        long start = System.currentTimeMillis(); // currentTimeMillis：获取当前系统的毫秒值

        try (BufferedInputStream bufferedInputStream = new BufferedInputStream( // 创建字节缓冲输入流
                new FileInputStream("file\\copyPic\\粹花.jpg")); // 构造参数：文件字节输入流
                BufferedOutputStream bufferedOutputStream = new BufferedOutputStream( // 创建字节缓冲输出流
                        new FileOutputStream("file\\copyPic\\缺牙妇.jpg"))) { // 构造参数：文件字节输出流
            int len = 0; // 读取有效字节的个数
            byte[] bytes = new byte[1024]; // 存储有效字节的数组，一次读取1024个字节
            while ((len = bufferedInputStream.read(bytes)) != -1) { // 通过字节缓冲输入流读取字节
                bufferedOutputStream.write(bytes, 0, len); // 通过字节缓冲输出流写入字节
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 记录运行结束时间
        System.out.println("运行时长：" + (System.currentTimeMillis() - start) + "毫秒");
        /*
         *  运行结果：
         *  不使用数组参数：74毫秒
         *  使用数组参数：4毫秒
         */
    }
}
